Dynomotion

Group: DynoMotion Message: 11183 From: cnc_machines Date: 3/9/2015
Subject: KStep Closed Loop Following Errors
Greetings,

I am having some trouble with following errors disabling the axises on my machine. It is very strange because when I do test movements in the step response screen my max error is 10 steps, I have set my max following error at 50. I cant think what else could be causing these faults.

I am running small parts with a cycle time of about 10 seconds. It seems that I have a fault about every 15 parts at random times. I am struggling to understand why. Does anyone have any suggestions for where to look?

Thanks,

Scott


Group: DynoMotion Message: 11184 From: Tom Kerekes Date: 3/9/2015
Subject: Re: KStep Closed Loop Following Errors
Hi Scott,

The KMotionCNC Trajectory Planner uses infinite Jerk, the Acceleration specified in the Tool Setup | Trajectory Planner Settings, and the Feed Rate specified in the GCode to do coordinated moves (G1, G2, G3).  Have you tested those kinds of moves in The Step Response Screen to see what kind of following errors there are under those conditions?

Regards
TK

Group: DynoMotion Message: 11185 From: cnc_machines Date: 3/9/2015
Subject: Re: KStep Closed Loop Following Errors
Thanks! I will try that tomorrow morning.
Group: DynoMotion Message: 11186 From: cnc_machines Date: 3/9/2015
Subject: Re: KStep Closed Loop Following Errors
Tom,

Been looking into this, it doesnt seem to be the issue. I only have 2 moves which are done using a feed rate, all the rest are G00.

It seems that these issues started when I combined my external buttons program with the Init file. I also added a line of code to blink a warning light if there ever is a following error. I can help but think that I missed something in this program which may be the root of my issues.

Would it be possible for you to take a quick peek at this code to see if I have any glaring issues? I spent a lot of time getting it to work, but am concerned that I may be hanging the program in my loop somewhere which could be causing my problems.

Thanks,

Scott
  @@attachment@@
Group: DynoMotion Message: 11189 From: Tom Kerekes Date: 3/10/2015
Subject: Re: KStep Closed Loop Following Errors [1 Attachment]
Attachments :
    Hi Scott,

    The only thing I see is that there was a missing function prototype and some function prototypes were in the middle of main() instead of before main.  I've attached a corrected program.  But I wouldn't expect that to be your issue.

    You might try standard troubleshooting techniques to narrow down the possibilities such as remove the button code to see if the problem goes away.

    Observe the KMotion.exe Console to see any nessage on which axis is being disabled.

    Observe the Axis Screen to see which axes are enabled and disabled and their Positions and Destinations.

    Try moving very very slowly (F - feedrate) to see if that has an effect.

    HTH
    Regards
    TK



    Group: DynoMotion Message: 11190 From: cnc_machines Date: 3/10/2015
    Subject: Re: KStep Closed Loop Following Errors [1 Attachment]
    Thank you Tom, I will keep looking. I dont see the attached program, did you miss attaching it?

    I was wondering if maybe having buttons and the warning blink light before the service amplifer disable could be causing it. Perhaps the program was taking too much time with these functions and allowed an error:

                T0 = Time_sec();  // record the time and position of last motion
                LastX=ch0->Dest;

    Maybe changing these variables after a delay could effect following errors?

    Scott
    Group: DynoMotion Message: 11193 From: Tom Kerekes Date: 3/10/2015
    Subject: Re: KStep Closed Loop Following Errors
    Hi Scott,

    I don't see that as taking much time (< 1us) or being an issue.

    Regards
    TK


    Group: DynoMotion Message: 11337 From: Tom Kerekes Date: 4/10/2015
    Subject: Re: KStep Closed Loop Following Errors
    Attachments :
      Hi Scott,

      Looks like I forgot to post the C Program.

      I also noticed this:


                  if (Time_sec() > T0 + .1)
                      ClearBit(45);
                      ClearBit(0);
                      SetBit(1);

      Only the ClearBit(45) is included in the "if" condition.  But I think your intent was to have all 3 statements.  In that case curly brackets are needed.


                  if (Time_sec() > T0 + .1)
                  {
                      ClearBit(45);
                      ClearBit(0);
                      SetBit(1);
                  }

      Regards
      TK